package 力扣;
//给定一个排序数组和一个目标值，在数组中找到目标值，
// 并返回其索引。如果目标值不存在于数组中，返回它将会被按顺序插入的位置。

public class 搜索插入位置 {
    public static void main(String[] args) {
       int[] nums={1,3,5,6};
        int i = searchInsert(nums, 2);
        System.out.println(i);
    }
    public static int searchInsert(int[] nums, int target) {
        //自己写的和大神写的区别
//        if (target<nums[0] ||target==nums[0])
//            return 0;
//         if (target>nums[nums.length-1])
//            return nums.length;
//        for (int i = 1; i < nums.length; i++) {
//            if (nums[i]==target)
//                return i;
//            else{
//                if (nums[i-1]<=target && nums[i]>target)
//                    return i;
//            }
//        }
//       return -1;
        //使用二分法进行求解
        int i=0;
        int j=nums.length-1;
        while (i<=j){
            int mid=i+(j-i)/2;
            if (nums[mid]>target)
                j=mid-1;
            else if(nums[mid]<target){
                i=mid+1;
            }
            else
                return mid;
        }
       return i;
    }
}
